/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package view;

import control.MStockMidlet;
import dao.DBManager;
import dao.ServiceManager;
import javax.microedition.lcdui.Display;
import listener.Command;
import listener.ICommandListener;
import listener.IDownloadListener;
import model.ErrorMessage;
import ui.Detail;
import ui.TextItem;
import util.StringUtils;

/**
 *
 * @author tho.hoang
 */
public class SendSMSForm extends AForm implements ICommandListener {

    public static final int NONE = -1;
    public static final int SEND_MESSAGE = 0;
    public static final int SEND_SUCCESS = 1;
    private Detail detail;
    private String appID;
    private String money;
    private String days;
    private String message;
    private int type;

    public SendSMSForm() {
    }

    public SendSMSForm(MStockMidlet control, Display display, int type, String appID, String money, String days) {
        super(control, display);
        this.appID = appID;
        this.money = money;
        this.days = days;
        this.type = type;
    }

    protected void initData() {
        lang = new String[]{"Thông báo",
                    "Đồng ý",
                    "Thoát",
                    "Ok",
                    "Ứng dụng đã hết hạn sử dụng.\nBạn có đồng ý trả MMM VND cho DDD ngày sử dụng ứng dụng?",
                    "Bạn đã gia hạn sử dụng ứng dụng.\nVui lòng chọn [Thoát] để khởi động lại ứng dụng.",
                    "Yêu cầu của bạn đang được thực hiện.\nVui lòng chờ..."};
    }

    protected void initGui() {
        icon = control.getIcons()[7];

        detail = new Detail(display, control, lang[0], background, icon);

        ok = new Command(lang[1], Command.OK);
        back = new Command(lang[2], Command.BACK);

        detail.setCancelCommand(back);
        detail.setCommandListener(this);

        loadData();
    }

    protected void loadData() {
        if (type == SEND_MESSAGE) {
            this.message = StringUtils.replace(lang[4], "MMM", money);
            this.message = StringUtils.replace(message, "DDD", days);

            detail.setSelectCommand(ok);

        } else if (type == SEND_SUCCESS) {
            this.message = lang[5];
        }

        detail.addItem(new TextItem("", "", message));
        detail.show();
    }

    protected void showData() {
    }

    protected void showError(ErrorMessage error) {
    }

    public void commandAction(Command command) {
        if (command == ok) {
            if (type == SEND_MESSAGE) {
//                DBManager.deleteSetting(DBManager.DB_CONFIG, DBManager.PARA_REINSTALL_TIME);
                String reinstall = StringUtils.getTimeStamp();
                DBManager.update(DBManager.DB_CONFIG, DBManager.PARA_REINSTALL_TIME, reinstall);

                detail = new Detail(display, control, lang[0], background, icon);
                detail.addItem(new TextItem("", "", lang[6]));
                detail.setCancelCommand(back);
                detail.setCommandListener(this);
                detail.show();

                ServiceManager.sendMessage(appID, reinstall, days, new IDownloadListener() {

                    public void completedAction(Object result) {
                        new SendSMSForm(control, display, SendSMSForm.SEND_SUCCESS, "", "", "").show();
                    }
                });
            } else if (type == SEND_SUCCESS) {
                control.destroyApp(true);
                control.notifyDestroyed();
            }
        } else if (command == back) {
            control.destroyApp(true);
            control.notifyDestroyed();
        }
    }
}
